package com.jxin.mall.member.consts;

import lombok.AllArgsConstructor;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * 登录类型枚举类
 * @author  蔡佳新
 * @version 1.0
 * @since   jdk 1.8
 */
@AllArgsConstructor
public enum LoginTypeEnum {
    /**电脑登入*/
    PC("PC", 0),
    /**安卓登入*/
    ANDROID("ANDROID", 1),
    /**苹果手机登入*/
    IOS("IOS", 2);

    private String  name;
    private Integer type;

    private final static Map<String, Integer> NAME_MAP;
    private final static Map<Integer, String> TYPE_MAP;

    static {
        final LoginTypeEnum[] loginTypeEnums = LoginTypeEnum.values();
        NAME_MAP = new HashMap<>(loginTypeEnums.length);
        TYPE_MAP = new HashMap<>(loginTypeEnums.length);
        Arrays.stream(loginTypeEnums).forEach(item ->{
            NAME_MAP.put(item.getName(), item.getType());
            TYPE_MAP.put(item.getType(), item.getName());
        });

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 根据设备名获取设备类型
     * @param name 设备名
     * @return 设备类型
     * @author 蔡佳新
     */
    public static Integer getTypeByName(String name){
        return NAME_MAP.get(name);
    }

    /**
     * 根据设备类型获取设备名
     * @param type 设备类型
     * @return 设备名
     * @author 蔡佳新
     */
    public static String getNameByType(Integer type){
        return TYPE_MAP.get(type);
    }
}
